home *** CD-ROM | disk | FTP | other *** search
- /* ListInAList.h */
- /*
- * List In A List Sample
- * ListInAList.h
- * Copyright © 1993-94 Apple Computer Inc. All rights reserved.
- */
- #ifndef _ListInAList_
- #define _ListInAList_
-
- #define MBAR_MenuBar 1
- #define MENU_Apple 1
- #define MENU_File 256
- #define MENU_Edit 257
- #define ACUR_Animator 256
-
- #ifndef REZ
- #ifndef THINK_C /* MPW includes */
- #include <Processes.h>
- #include <Errors.h>
- #include <Finder.h>
- #include <Folders.h>
- #include <Script.h>
- #include <Types.h>
- #include <Resources.h>
- #include <QuickDraw.h>
- #include <Fonts.h>
- #include <Events.h>
- #include <Windows.h>
- #include <Menus.h>
- #include <TextEdit.h>
- #include <Dialogs.h>
- #include <Desk.h>
- #include <ToolUtils.h>
- #include <Memory.h>
- #include <Files.h>
- #include <OSUtils.h>
- #include <OSEvents.h>
- #include <DiskInit.h>
- #include <Packages.h>
- #include <Traps.h>
- #include <Lists.h>
- #endif
- #include <GestaltEqu.h>
-
- #include "TwistDownList.h"
-
- /*
- *** Common definitions
- */
- #ifndef EXTERN
- #define EXTERN extern
- #endif
- #ifndef TRUE
- #define TRUE 1
- #define FALSE 0
- #endif
- #ifndef NULL
- #define NULL 0
- #endif
- #define SYNC 0 /* Synchronous I/O */
- /*
- * Because the rest of the window layout depends on the size
- * of various pieces of text, we don't put these values into
- * the parameter resource file.
- */
- #define kListFontNumber (geneva)
- #define kListFontSize (10)
- #define kScrollBarWidth (16)
-
- #define kAnimationInterval (6) /* Ticks */
-
- /*
- * This is used by the animated cursor subroutine.
- */
- typedef struct {
- unsigned short nFrames;
- unsigned short nextFrame;
- CursHandle frame[1];
- } ACUR_Record, *ACUR_Ptr, **ACUR_Handle;
-
- /*
- * All of the information we need for browsing is stored in an extended
- * window record.
- */
- typedef struct BrowserRecord {
- WindowRecord theWindow;
- ListHandle theList;
- TwistDownHdl listHead;
- } BrowserRecord, *BrowserPtr;
-
- /*
- * Window management functions
- */
- void MakeHFSBrowserWindow(void);
- void DisposeBrowser(
- register BrowserPtr browserPtr
- );
- void DoContentClick(
- register BrowserPtr browserPtr
- );
- void DoWindowKeyDown(
- register BrowserPtr browserPtr
- );
- void UpdateBrowserWindow(
- register BrowserPtr browserPtr,
- RgnHandle updateRgn
- );
- void ActivateBrowser(
- register BrowserPtr browserPtr,
- Boolean isActivating
- );
-
- /*
- * Enumerate the HFS Catalog. This is a recursive function that is called at
- * each level of the folder hierarchy. It returns the handle of the first
- * element (file or folder) that it created.
- */
- TwistDownHdl EnumerateHFSCatalog(
- ListHandle theList,
- short indentLevel,
- short volumeRefNum,
- long volumeDirIndex
- );
-
- /*
- * Animated Cursor Utilities
- */
- void SetupAnimatedCursor(
- short ACUR_ResID
- );
- void SpinCursor(void);
- extern void pstrcpy(
- StringPtr dst,
- StringPtr src
- );
- extern void pstrcat(
- StringPtr dst,
- StringPtr src
- );
- /*
- * Cheap 'n dirty memory clear routine.
- */
- #define Clear(dst) do { \
- Ptr _ptr = (Ptr) &dst; \
- Size _size = sizeof dst; \
- while (_size > 0) { \
- *_ptr++ = 0; \
- --_size; \
- } \
- } while (0)
-
- /*
- * Global values
- */
- EXTERN EventRecord gEventRecord;
- EXTERN Boolean gQuitNow;
- EXTERN Boolean gUpdateMenusNeeded;
- EXTERN BrowserPtr gCurrentBrowserPtr;
- EXTERN short gOpenWindowCount;
- EXTERN MenuHandle gAppleMenu;
- EXTERN MenuHandle gFileMenu;
- EXTERN MenuHandle gEditMenu;
- EXTERN ACUR_Handle gACUR_Handle;
- EXTERN unsigned long gACUR_NextAnimation;
-
- #endif /* Not REZ */
- #endif /* _ListInAList_ */
-